﻿using System;
using System.Collections.Generic;
using System.Text;
using DevExpress.Persistent.BaseImpl;
using DevExpress.Xpo;
using DevExpress.Persistent.Base;
using DevExpress.Data.Filtering;
using System.ComponentModel;

namespace WinSCM.Module.Model
{
    [NavigationItem("库存管理")]
    public class 其他入库单 : OrderObject
    {
        public 其他入库单(Session session)
            : base(session)
        {

        }
        protected override SeedType SeedType
        {
            get { return SeedType.其他入库单; }
        }

        private 供应商 _供应商名称;
        [Custom("Caption", "供应商名称")]
        public 供应商 供应商名称
        {
            get { return _供应商名称; }
            set { SetPropertyValue<供应商>("供应商名称", ref _供应商名称, value); }
        }
        private 客户 _客户名称;
        [Custom("Caption", "客户名称")]
        public 客户 客户名称
        {
            get { return _客户名称; }
            set { SetPropertyValue<客户>("客户名称", ref _客户名称, value); }
        }
        private DateTime _日期;
        [Custom("Caption", "日期")]
        public DateTime 日期
        {
            get { return _日期; }
            set { SetPropertyValue<DateTime>("日期", ref _日期, value); }
        }
        private 出入库分类 _入库类别;
        [Custom("Caption", "入库类别")]
        [Custom("DataSourceCriteria", "[出入库类别]=2")]
        public 出入库分类 入库类别
        {
            get { return _入库类别; }
            set { SetPropertyValue<出入库分类>("入库类别", ref _入库类别, value); }
        }
        [Association("其他入库单-明细")]
        public XPCollection<其他入库单明细> 其他入库单明细
        {
            get { return GetCollection<其他入库单明细>("其他入库单明细"); }
        }
    }
    public class 其他入库单明细 : BaseObject
    {
        public 其他入库单明细(Session session)
            : base(session)
        {

        }
        private 其他入库单 _其他入库单号;
        [Custom("Caption", "其他入库单号")]
        [Association("其他入库单-明细")]
        public 其他入库单 其他入库单号
        {
            get { return _其他入库单号; }
            set { SetPropertyValue<其他入库单>("其他入库单号", ref _其他入库单号, value); }
        }
        private 商品 _商品名称;
        [Custom("Caption", "商品名称")]
        public 商品 商品名称
        {
            get { return _商品名称; }
            set { SetPropertyValue<商品>("商品名称", ref _商品名称, value); }
        }
        private string _批号;
        [Custom("Caption", "批号")]
        public string 批号
        {
            get { return _批号; }
            set { SetPropertyValue<string>("批号", ref _批号, value); }
        }
        private decimal _数量;
        [Custom("Caption", "数量")]
        [Custom("EditMask","n2")]
        [Custom("DisplayFormat","{0:n2}")]
        public decimal 数量
        {
            get { return _数量; }
            set { SetPropertyValue<decimal>("数量", ref _数量, value); }
        }

    }

    [NavigationItem("库存管理")]
    public class 其他出库单 : OrderObject
    {
        public 其他出库单(Session session)
            : base(session)
        {

        }

        protected override SeedType SeedType
        {
            get { return SeedType.其他出库单; }
        }
        private 客户 _客户名称;
        [Custom("Caption", "客户名称")]
        public 客户 客户名称
        {
            get { return _客户名称; }
            set { SetPropertyValue<客户>("客户名称", ref _客户名称, value); }
        }
        private 供应商 _供应商名称;
        [Custom("Caption", "供应商名称")]
        public 供应商 供应商名称
        {
            get { return _供应商名称; }
            set { SetPropertyValue<供应商>("供应商名称", ref _供应商名称, value); }
        }
        private DateTime _日期;
        [Custom("Caption", "日期")]
        public DateTime 日期
        {
            get { return _日期; }
            set { SetPropertyValue<DateTime>("日期", ref _日期, value); }
        }
        private 出入库分类 _出库类别;
        [Custom("Caption", "出库类别")]
        [Custom("DataSourceCriteria", "[出入库类别]=1")]
        public 出入库分类 出库类别
        {
            get { return _出库类别; }
            set { SetPropertyValue<出入库分类>("出库类别", ref _出库类别, value); }
        }
        private 摘要库 _摘要;
        [Custom("Caption", "摘要")]
        public 摘要库 摘要
        {
            get { return _摘要; }
            set { SetPropertyValue<摘要库>("摘要", ref _摘要, value); }
        }
        private 职员 _业务员;
        [Custom("Caption", "业务员")]
        public 职员 业务员
        {
            get { return _业务员; }
            set { SetPropertyValue<职员>("业务员", ref _业务员, value); }
        }
        private 部门 _部门;
        [Custom("Caption", "部门")]
        public 部门 部门
        {
            get { return _部门; }
            set { SetPropertyValue<部门>("部门", ref _部门, value); }
        }
        public XPCollection<其他出库单明细> 其他出库单明细
        {
            get { return GetCollection<其他出库单明细>("其他出库单明细"); }
        }
    }
    public class 其他出库单明细 : BaseObject
    {
        public 其他出库单明细(Session session)
            : base(session)
        {

        }
        private 其他出库单 _其它出库单号;
        [Custom("Caption", "其它出库单号")]
        public 其他出库单 其它出库单号
        {
            get { return _其它出库单号; }
            set { SetPropertyValue<其他出库单>("其它出库单号", ref _其它出库单号, value); }
        }
        private 商品 _商品名称;
        [Custom("Caption", "商品名称")]
        public 商品 商品名称
        {
            get { return _商品名称; }
            set { SetPropertyValue<商品>("商品名称", ref _商品名称, value); }
        }
        private string _批号;
        [Custom("Caption", "批号")]
        public string 批号
        {
            get { return _批号; }
            set { SetPropertyValue<string>("批号", ref _批号, value); }
        }
        private decimal _数量;
        [Custom("Caption", "数量")]
        [Custom("EditMask", "n2")]
        [Custom("DisplayFormat", "{0:n2}")]
        public decimal 数量
        {
            get { return _数量; }
            set { SetPropertyValue<decimal>("数量", ref _数量, value); }
        }
    }
    [NavigationItem("库存管理")]
    public class 组装单 : OrderObject
    {
        public 组装单(Session session)
            : base(session)
        {

        }

        protected override SeedType SeedType
        {
            get { return SeedType.组装单; }
        }
        private decimal _组装费用;
        [Custom("Caption", "组装费用")]
        public decimal 组装费用
        {
            get { return _组装费用; }
            set { SetPropertyValue<decimal>("组装费用", ref _组装费用, value); }
        }
        private 出入库分类 _费用类型;
        [Custom("Caption", "费用类型")]
        [Custom("DataSourceCriteria", "[出入库类别]=1")]
        public 出入库分类 费用类型
        {
            get { return _费用类型; }
            set { SetPropertyValue<出入库分类>("费用类型", ref _费用类型, value); }
        }
        private DateTime _日期;
        [Custom("Caption", "日期")]
        public DateTime 日期
        {
            get { return _日期; }
            set { SetPropertyValue<DateTime>("日期", ref _日期, value); }
        }

        private 摘要库 _摘要;
        [Custom("Caption", "摘要")]
        public 摘要库 摘要
        {
            get { return _摘要; }
            set { SetPropertyValue<摘要库>("摘要", ref _摘要, value); }
        }
        private 商品 _商品名称;
        [Custom("Caption", "商品名称")]
        public 商品 商品名称
        {
            get { return _商品名称; }
            set { SetPropertyValue<商品>("商品名称", ref _商品名称, value); }
        }
        private decimal _数量;
        [Custom("Caption", "数量")]
        [Custom("EditMask", "n2")]
        [Custom("DisplayFormat", "{0:n2}")]
        public decimal 数量
        {
            get { return _数量; }
            set { SetPropertyValue<decimal>("数量", ref _数量, value); }
        }
        public XPCollection<组装单配件> 组装单配件
        {
            get
            {
                return GetCollection<组装单配件>("组装单配件");
            }
        }
    }
    public class 组装单配件 : BaseObject
    {
        public 组装单配件(Session session)
            : base(session)
        {

        }
        private 组装单 _组装单号;
        [Custom("Caption", "组装单号")]
        public 组装单 组装单号
        {
            get { return _组装单号; }
            set { SetPropertyValue<组装单>("组装单号", ref _组装单号, value); }
        }

        private 商品 _商品名称;
        [Custom("Caption", "商品名称")]
        public 商品 商品名称
        {
            get { return _商品名称; }
            set { SetPropertyValue<商品>("商品名称", ref _商品名称, value); }
        }
        private decimal _数量;
        [Custom("Caption", "数量")]
        [Custom("EditMask", "n2")]
        [Custom("DisplayFormat", "{0:n2}")]
        public decimal 数量
        {
            get { return _数量; }
            set { SetPropertyValue<decimal>("数量", ref _数量, value); }
        }

    }
    [NavigationItem("库存管理")]
    public class 拆卸单 : OrderObject
    {
        public 拆卸单(Session session)
            : base(session)
        {

        }

        protected override SeedType SeedType
        {
            get { return SeedType.拆卸单; }
        }
        private decimal _拆卸费用;
        [Custom("Caption", "拆卸费用")]
        public decimal 拆卸费用
        {
            get { return _拆卸费用; }
            set { SetPropertyValue<decimal>("拆卸费用", ref _拆卸费用, value); }
        }
        private 出入库分类 _费用类型;
        [Custom("Caption", "费用类型")]
        [Custom("DataSourceCriteria", "[出入库类别]=1")]
        public 出入库分类 费用类型
        {
            get { return _费用类型; }
            set { SetPropertyValue<出入库分类>("费用类型", ref _费用类型, value); }
        }
        private DateTime _日期;
        [Custom("Caption", "日期")]
        public DateTime 日期
        {
            get { return _日期; }
            set { SetPropertyValue<DateTime>("日期", ref _日期, value); }
        }
        private 摘要库 _摘要;
        [Custom("Caption", "摘要")]
        public 摘要库 摘要
        {
            get { return _摘要; }
            set { SetPropertyValue<摘要库>("摘要", ref _摘要, value); }
        }
        private 商品 _商品名称;
        [Custom("Caption", "商品名称")]
        public 商品 商品名称
        {
            get { return _商品名称; }
            set { SetPropertyValue<商品>("商品名称", ref _商品名称, value); }
        }
        private decimal _数量;
        [Custom("Caption", "数量")]
        [Custom("EditMask", "n2")]
        [Custom("DisplayFormat", "{0:n2}")]
        public decimal 数量
        {
            get { return _数量; }
            set { SetPropertyValue<decimal>("数量", ref _数量, value); }
        }
        private 仓库 _仓库名称;
        [Custom("Caption", "仓库名称")]
        public 仓库 仓库名称
        {
            get { return _仓库名称; }
            set { SetPropertyValue<仓库>("仓库名称", ref _仓库名称, value); }
        }
        [Association("拆卸单-拆卸单配件")]
        public XPCollection<拆卸单配件> 拆卸单配件
        {
            get { return GetCollection<拆卸单配件>("拆卸单配件"); }
        }
    }
    public class 拆卸单配件 : BaseObject
    {
        public 拆卸单配件(Session session)
            : base(session)
        {

        }
        private 拆卸单 _拆卸单号;
        [Custom("Caption", "拆卸单号")]
        [Association("拆卸单-拆卸单配件")]
        public 拆卸单 拆卸单号
        {
            get { return _拆卸单号; }
            set { SetPropertyValue<拆卸单>("拆卸单号", ref _拆卸单号, value); }
        }
        private 商品 _商品名称;
        [Custom("Caption", "商品名称")]
        public 商品 商品名称
        {
            get { return _商品名称; }
            set { SetPropertyValue<商品>("商品名称", ref _商品名称, value); }
        }
        private decimal _数量;
        [Custom("Caption", "数量")]
        [Custom("EditMask", "n2")]
        [Custom("DisplayFormat", "{0:n2}")]
        public decimal 数量
        {
            get { return _数量; }
            set { SetPropertyValue<decimal>("数量", ref _数量, value); }
        }
        private 仓库 _仓库名称;
        [Custom("Caption", "仓库名称")]
        public 仓库 仓库名称
        {
            get { return _仓库名称; }
            set { SetPropertyValue<仓库>("仓库名称", ref _仓库名称, value); }
        }
    }

    [NavigationItem("库存管理")]
    public class 盘盈单 : OrderObject
    {
        public 盘盈单(Session session)
            : base(session)
        {

        }
        protected override SeedType SeedType
        {
            get { return SeedType.盘盈单; }
        }
        private 出入库分类 _入库类别;
        [Custom("Caption", "入库类别")]
        public 出入库分类 入库类别
        {
            get { return _入库类别; }
            set { SetPropertyValue<出入库分类>("入库类别", ref _入库类别, value); }
        }
        private 摘要库 _摘要;
        [Custom("Caption", "摘要")]
        public 摘要库 摘要
        {
            get { return _摘要; }
            set { SetPropertyValue<摘要库>("摘要", ref _摘要, value); }
        }

        private 职员 _业务员;
        [Custom("Caption", "业务员")]
        public 职员 业务员
        {
            get { return _业务员; }
            set { SetPropertyValue<职员>("业务员", ref _业务员, value); }
        }
        private 部门 _部门;
        [Custom("Caption", "部门")]
        public 部门 部门
        {
            get { return _部门; }
            set { SetPropertyValue<部门>("部门", ref _部门, value); }
        }
        [Association("盘盈单-明细")]
        public XPCollection<盘盈单明细> 盘盈单明细
        {
            get { return GetCollection<盘盈单明细>("盘盈单明细"); }
        }
    }
    public class 盘盈单明细 : BaseObject
    {
        public 盘盈单明细(Session session)
            : base(session)
        {

        }
        private 盘盈单 _盘盈单号;
        [Custom("Caption", "盘盈单号")]
        [Association("盘盈单-明细")]
        public 盘盈单 盘盈单号
        {
            get { return _盘盈单号; }
            set { SetPropertyValue<盘盈单>("盘盈单号", ref _盘盈单号, value); }
        }
        private 商品 _商品名称;
        [Custom("Caption", "商品名称")]
        public 商品 商品名称
        {
            get { return _商品名称; }
            set { SetPropertyValue<商品>("商品名称", ref _商品名称, value); }
        }
        private decimal _数量;
        [Custom("Caption", "数量")]
        [Custom("EditMask", "n2")]
        [Custom("DisplayFormat", "{0:n2}")]
        public decimal 数量
        {
            get { return _数量; }
            set { SetPropertyValue<decimal>("数量", ref _数量, value); }
        }

    }
    [NavigationItem("库存管理")]
    public class 盘亏单 : OrderObject
    {
        public 盘亏单(Session session)
            : base(session)
        {

        }
        protected override SeedType SeedType
        {
            get { return SeedType.盘亏单; }
        }
        private 出入库分类 _出库类别;
        [Custom("Caption", "出库类别")]
        public 出入库分类 出库类别
        {
            get { return _出库类别; }
            set { SetPropertyValue<出入库分类>("出库类别", ref _出库类别, value); }
        }
        private 职员 _业务员;
        [Custom("Caption", "业务员")]
        public 职员 业务员
        {
            get { return _业务员; }
            set { SetPropertyValue<职员>("业务员", ref _业务员, value); }
        }
        private 部门 _部门;
        [Custom("Caption", "部门")]
        public 部门 部门
        {
            get { return _部门; }
            set { SetPropertyValue<部门>("部门", ref _部门, value); }
        }
        public XPCollection<盘亏单明细> 盘亏单明细
        {
            get { return GetCollection<盘亏单明细>("盘亏单明细"); }
        }

    }
    public class 盘亏单明细 : BaseObject
    {
        public 盘亏单明细(Session session)
            : base(session)
        {

        }
        private 盘亏单 _盘亏单号;
        [Custom("Caption", "盘亏单号")]
        public 盘亏单 盘亏单号
        {
            get { return _盘亏单号; }
            set { SetPropertyValue<盘亏单>("盘亏单号", ref _盘亏单号, value); }
        }
        private 商品 _商品名称;
        [Custom("Caption", "商品名称")]
        public 商品 商品名称
        {
            get { return _商品名称; }
            set { SetPropertyValue<商品>("商品名称", ref _商品名称, value); }
        }
        private decimal _数量;
        [Custom("Caption", "数量")]
        [Custom("EditMask", "n2")]
        [Custom("DisplayFormat", "{0:n2}")]
        public decimal 数量
        {
            get { return _数量; }
            set { SetPropertyValue<decimal>("数量", ref _数量, value); }
        }
    }
    public enum 调拨类型
    {
        同价调拨 = 0,
        异价调拨 = 1
    }
    [NavigationItem("库存管理")]
    public class 调拨单 : OrderObject
    {
        public 调拨单(Session session)
            : base(session)
        {

        }

        protected override SeedType SeedType
        {
            get { return SeedType.调拨单; }
        }
        private 调拨类型 _调拨类型;
        [Custom("Caption", "调拨类型")]
        public 调拨类型 调拨类型
        {
            get { return _调拨类型; }
            set { SetPropertyValue<调拨类型>("调拨类型", ref _调拨类型, value); }
        }
        private DateTime _日期;
        [Custom("Caption", "日期")]
        public DateTime 日期
        {
            get { return _日期; }
            set { SetPropertyValue<DateTime>("日期", ref _日期, value); }
        }
        private 职员 _业务员;
        [Custom("Caption", "业务员")]
        public 职员 业务员
        {
            get { return _业务员; }
            set { SetPropertyValue<职员>("业务员", ref _业务员, value); }
        }
        private 部门 _部门;
        [Custom("Caption", "部门")]
        public 部门 部门
        {
            get { return _部门; }
            set { SetPropertyValue<部门>("部门", ref _部门, value); }
        }

        [Association("调拨单-明细")]
        public XPCollection<调拨单明细> 调拨单明细
        {
            get { return GetCollection<调拨单明细>("调拨单明细"); }
        }
    }
    public class 调拨单明细 : BaseObject
    {
        public 调拨单明细(Session session)
            : base(session)
        {

        }
        private 调拨单 _调拨单号;
        [Custom("Caption", "调拨单号")]
        [Association("调拨单-明细")]
        public 调拨单 调拨单号
        {
            get { return _调拨单号; }
            set { SetPropertyValue<调拨单>("调拨单号", ref _调拨单号, value); }
        }
        private 商品 _商品名称;
        [Custom("Caption", "商品名称")]
        public 商品 商品名称
        {
            get { return _商品名称; }
            set { SetPropertyValue<商品>("商品名称", ref _商品名称, value); }
        }
        private decimal _数量;
        [Custom("Caption", "数量")]
        [Custom("EditMask", "n2")]
        [Custom("DisplayFormat", "{0:n2}")]
        public decimal 数量
        {
            get { return _数量; }
            set { SetPropertyValue<decimal>("数量", ref _数量, value); }
        }
    }
    [NavigationItem("库存管理")]
    public class 调价单 : OrderObject
    {
        public 调价单(Session session)
            : base(session)
        {

        }

        protected override SeedType SeedType
        {
            get { return SeedType.调价单; }
        }
        private 出入库分类 _调价科目;
        [Custom("Caption", "调价科目")]
        [Custom("DataSourceCriteria", "[出入库类别]=2")]
        public 出入库分类 调价科目
        {
            get { return _调价科目; }
            set { SetPropertyValue<出入库分类>("调价科目", ref _调价科目, value); }
        }
        private decimal _调价金额;
        [Custom("Caption", "调价金额")]
        public decimal 调价金额
        {
            get { return _调价金额; }
            set { SetPropertyValue<decimal>("调价金额", ref _调价金额, value); }
        }
        private DateTime _日期;
        [Custom("Caption", "日期")]
        public DateTime 日期
        {
            get { return _日期; }
            set { SetPropertyValue<DateTime>("日期", ref _日期, value); }
        }
        private 摘要库 _摘要;
        [Custom("Caption", "摘要")]
        public 摘要库 摘要
        {
            get { return _摘要; }
            set { SetPropertyValue<摘要库>("摘要", ref _摘要, value); }
        }
        private 职员 _业务员;
        [Custom("Caption", "业务员")]
        public 职员 业务员
        {
            get { return _业务员; }
            set { SetPropertyValue<职员>("业务员", ref _业务员, value); }
        }
        private 部门 _部门;
        [Custom("Caption", "部门")]
        public 部门 部门
        {
            get { return _部门; }
            set { SetPropertyValue<部门>("部门", ref _部门, value); }
        }

        [Association("调价单-明细")]
        public XPCollection<调价单明细> 调价单明细
        {
            get { return GetCollection<调价单明细>("调价单明细"); }
        }
    }
    public class 调价单明细 : BaseObject
    {
        public 调价单明细(Session session)
            : base(session)
        {

        }
        private 调价单 _调价单号;
        [Custom("Caption", "调价单号")]
        [Association("调价单-明细")]
        public 调价单 调价单号
        {
            get { return _调价单号; }
            set { SetPropertyValue<调价单>("调价单号", ref _调价单号, value); }
        }
        private 商品 _商品名称;
        [Custom("Caption", "商品名称")]
        public 商品 商品名称
        {
            get { return _商品名称; }
            set { SetPropertyValue<商品>("商品名称", ref _商品名称, value); }
        }
        private decimal _调价金额;
        [Custom("Caption", "调价金额")]
        public decimal 调价金额
        {
            get { return _调价金额; }
            set { SetPropertyValue<decimal>("调价金额", ref _调价金额, value); }
        }

    }
    [NavigationItem("库存管理")]
    [DefaultProperty("盘点方案名称")]
    public class 盘点 : BaseObject
    {
        public 盘点(Session session)
            : base(session)
        {

        }
        private int _盘点顺序;
        [Custom("Caption", "盘点顺序")]
        public int 盘点顺序
        {
            get { return _盘点顺序; }
            set { SetPropertyValue<int>("盘点顺序", ref _盘点顺序, value); }
        }
        private string _盘点方案名称;
        [Custom("Caption", "盘点方案名称")]
        public string 盘点方案名称
        {
            get { return _盘点方案名称; }
            set { SetPropertyValue<string>("盘点方案名称", ref _盘点方案名称, value); }
        }
        private string _备注;
        [Custom("Caption", "备注")]
        public string 备注
        {
            get { return _备注; }
            set { SetPropertyValue<string>("备注", ref _备注, value); }
        }
        private DateTime _截止日期;
        [Custom("Caption", "截止日期")]
        public DateTime 截止日期
        {
            get { return _截止日期; }
            set { SetPropertyValue<DateTime>("截止日期", ref _截止日期, value); }
        }
        private 职员 _制单人;
        [Custom("Caption", "制单人")]
        public 职员 制单人
        {
            get { return _制单人; }
            set { SetPropertyValue<职员>("制单人", ref _制单人, value); }
        }
        [Association("盘点-明细")]
        public XPCollection<盘点明细> 盘点明细
        {
            get { return GetCollection<盘点明细>("盘点明细"); }
        }
    }
    public class 盘点明细 : BaseObject
    {
        public 盘点明细(Session session)
            : base(session)
        {

        }
        private 盘点 _盘点;
        [Custom("Caption", "盘点")]
        [Association("盘点-明细")]
        public 盘点 盘点
        {
            get { return _盘点; }
            set { SetPropertyValue<盘点>("盘点", ref _盘点, value); }
        }

        private 仓库 _仓库名称;
        [Custom("Caption", "仓库名称")]
        public 仓库 仓库名称
        {
            get { return _仓库名称; }
            set { SetPropertyValue<仓库>("仓库名称", ref _仓库名称, value); }
        }
        private 商品 _商品名称;
        [Custom("Caption", "商品名称")]
        public 商品 商品名称
        {
            get { return _商品名称; }
            set { SetPropertyValue<商品>("商品名称", ref _商品名称, value); }
        }
        private string _批次;
        [Custom("Caption", "批次")]
        public string 批次
        {
            get { return _批次; }
            set { SetPropertyValue<string>("批次", ref _批次, value); }
        }

    }
    #region 注释
    //[NavigationItem("库存管理")]
    //public class 入库单 : AbsOrder
    //{
    //    public 入库单(Session session)
    //        : base(session)
    //    {

    //    }
    //    protected override SeedType SeedType
    //    {
    //        get { return SeedType.入库单; }
    //    }
    //    //private string _入库单号;
    //    //[Custom("Caption", "入库单号")]
    //    //public string 入库单号
    //    //{
    //    //    get { return _入库单号; }
    //    //    set { SetPropertyValue<string>("入库单号", ref _入库单号, value); }
    //    //}
    //    private DateTime _入库日期;
    //    [Custom("Caption", "入库日期")]
    //    public DateTime 入库日期
    //    {
    //        get { return _入库日期; }
    //        set { SetPropertyValue<DateTime>("入库日期", ref _入库日期, value); }
    //    }
    //    private 仓库 _仓库名称;
    //    [Custom("Caption", "仓库名称")]
    //    public 仓库 仓库名称
    //    {
    //        get { return _仓库名称; }
    //        set { SetPropertyValue<仓库>("仓库名称", ref _仓库名称, value); }
    //    }
    //    //private User _员工;
    //    //[Custom("Caption", "员工")]
    //    //public User 员工
    //    //{
    //    //    get { return _员工; }
    //    //    set { SetPropertyValue<User>("员工", ref _员工, value); }
    //    //}
    //    private string _条码;
    //    [Custom("Caption", "条码")]
    //    public string 条码
    //    {
    //        get { return _条码; }
    //        set { SetPropertyValue<string>("条码", ref _条码, value); }
    //    }
    //    private 供应商 _供应商名称;
    //    [Custom("Caption", "供应商名称")]
    //    public 供应商 供应商名称
    //    {
    //        get { return _供应商名称; }
    //        set { SetPropertyValue<供应商>("供应商名称", ref _供应商名称, value); }
    //    }
    //    //private string _备注;
    //    //[Custom("Caption", "备注")]
    //    //public string 备注
    //    //{
    //    //    get { return _备注; }
    //    //    set { SetPropertyValue<string>("备注", ref _备注, value); }
    //    //}
    //    [Association("入库单-入库单明细")]
    //    public XPCollection<入库单明细> 入库单明细
    //    {
    //        get { return GetCollection<入库单明细>("入库单明细"); }
    //    }


    //}
    //public class 入库单明细 : BaseObject
    //{
    //    public 入库单明细(Session session)
    //        : base(session)
    //    {

    //    }
    //    protected override void OnSaving()
    //    {
    //        base.OnSaving();
    //        实际库存.CheckStock(Session, 异动方向.入库, 商品名称, 入库数量, 单位);
    //    }
    //    private 入库单 _入库单号;
    //    [Custom("Caption", "入库单号")]
    //    [Association("入库单-入库单明细")]
    //    public 入库单 入库单号
    //    {
    //        get { return _入库单号; }
    //        set { SetPropertyValue<入库单>("入库单号", ref _入库单号, value); }
    //    }
    //    private 商品 _商品名称;
    //    [Custom("Caption", "商品名称")]
    //    public 商品 商品名称
    //    {
    //        get { return _商品名称; }
    //        set { SetPropertyValue<商品>("商品名称", ref _商品名称, value); }
    //    }
    //    private decimal _入库数量;
    //    [Custom("Caption", "入库数量")]
    //    public decimal 入库数量
    //    {
    //        get { return _入库数量; }
    //        set { SetPropertyValue<decimal>("入库数量", ref _入库数量, value); }
    //    }
    //    private 单位 _单位;
    //    [Custom("Caption", "单位")]
    //    public 单位 单位
    //    {
    //        get { return _单位; }
    //        set { SetPropertyValue<单位>("单位", ref _单位, value); }
    //    }
    //    private string _备注;
    //    [Custom("Caption", "备注")]
    //    public string 备注
    //    {
    //        get { return _备注; }
    //        set { SetPropertyValue<string>("备注", ref _备注, value); }
    //    }


    //}

    //[NavigationItem("库存管理")]
    //public class 出库单 : AbsOrder
    //{
    //    public 出库单(Session session)
    //        : base(session)
    //    {

    //    }
    //    protected override SeedType SeedType
    //    {
    //        get { return SeedType.出库单; }
    //    }
    //    //private string _出库单号;
    //    //[Custom("Caption", "出库单号")]
    //    //public string 出库单号
    //    //{
    //    //    get { return _出库单号; }
    //    //    set { SetPropertyValue<string>("出库单号", ref _出库单号, value); }
    //    //}
    //    private DateTime _出库日期;
    //    [Custom("Caption", "出库日期")]
    //    public DateTime 出库日期
    //    {
    //        get { return _出库日期; }
    //        set { SetPropertyValue<DateTime>("出库日期", ref _出库日期, value); }
    //    }
    //    private 仓库 _仓库名称;
    //    [Custom("Caption", "仓库名称")]
    //    public 仓库 仓库名称
    //    {
    //        get { return _仓库名称; }
    //        set { SetPropertyValue<仓库>("仓库名称", ref _仓库名称, value); }
    //    }
    //    //private User _员工;
    //    //[Custom("Caption", "员工")]
    //    //public User 员工
    //    //{
    //    //    get { return _员工; }
    //    //    set { SetPropertyValue<User>("员工", ref _员工, value); }
    //    //}
    //    private string _条码;
    //    [Custom("Caption", "条码")]
    //    public string 条码
    //    {
    //        get { return _条码; }
    //        set { SetPropertyValue<string>("条码", ref _条码, value); }
    //    }
    //    private 供应商 _供应商名称;
    //    [Custom("Caption", "供应商名称")]
    //    public 供应商 供应商名称
    //    {
    //        get { return _供应商名称; }
    //        set { SetPropertyValue<供应商>("供应商名称", ref _供应商名称, value); }
    //    }
    //    //private string _备注;
    //    //[Custom("Caption", "备注")]
    //    //public string 备注
    //    //{
    //    //    get { return _备注; }
    //    //    set { SetPropertyValue<string>("备注", ref _备注, value); }
    //    //}
    //    [Association("出库单-出库单明细")]
    //    public XPCollection<出库单明细> 出库单明细
    //    {
    //        get { return GetCollection<出库单明细>("出库单明细"); }
    //    }
    //}
    //public class 出库单明细 : BaseObject
    //{
    //    public 出库单明细(Session session)
    //        : base(session)
    //    {

    //    }
    //    protected override void OnSaving()
    //    {
    //        base.OnSaving();
    //        实际库存.CheckStock(Session, 异动方向.出库, 商品名称, 出库数量, 单位);
    //    }
    //    private 出库单 _出库单号;
    //    [Custom("Caption", "出库单号")]
    //    [Association("出库单-出库单明细")]
    //    public 出库单 出库单号
    //    {
    //        get { return _出库单号; }
    //        set { SetPropertyValue<出库单>("出库单号", ref _出库单号, value); }
    //    }
    //    private 商品 _商品名称;
    //    [Custom("Caption", "商品名称")]
    //    public 商品 商品名称
    //    {
    //        get { return _商品名称; }
    //        set { SetPropertyValue<商品>("商品名称", ref _商品名称, value); }
    //    }
    //    private decimal _出库数量;
    //    [Custom("Caption", "出库数量")]
    //    public decimal 出库数量
    //    {
    //        get { return _出库数量; }
    //        set { SetPropertyValue<decimal>("出库数量", ref _出库数量, value); }
    //    }
    //    private 单位 _单位;
    //    [Custom("Caption", "单位")]
    //    public 单位 单位
    //    {
    //        get { return _单位; }
    //        set { SetPropertyValue<单位>("单位", ref _单位, value); }
    //    }
    //    private string _备注;
    //    [Custom("Caption", "备注")]
    //    public string 备注
    //    {
    //        get { return _备注; }
    //        set { SetPropertyValue<string>("备注", ref _备注, value); }
    //    }
    //}
    ///// <summary>
    ///// 用于记录库存当前状况
    ///// </summary>
    ///// 
    //[NavigationItem("库存管理")]
    //public class 实际库存 : BaseObject
    //{
    //    public 实际库存(Session session)
    //        : base(session)
    //    {

    //    }
    //    private 商品 _商品名称;
    //    [Custom("Caption", "商品名称")]
    //    public 商品 商品名称
    //    {
    //        get { return _商品名称; }
    //        set { SetPropertyValue<商品>("商品名称", ref _商品名称, value); }
    //    }
    //    private decimal _实际数量;
    //    [Custom("Caption", "实际数量")]
    //    public decimal 实际数量
    //    {
    //        get { return _实际数量; }
    //        set { SetPropertyValue<decimal>("实际数量", ref _实际数量, value); }
    //    }
    //    private 单位 _单位;
    //    [Custom("Caption", "单位")]
    //    public 单位 单位
    //    {
    //        get { return _单位; }
    //        set { SetPropertyValue<单位>("单位", ref _单位, value); }
    //    }
    //    /// <summary>
    //    /// 
    //    /// </summary>
    //    /// <param name="_session"></param>
    //    /// <param name="_stockChange"></param>
    //    /// <param name="_product"></param>
    //    /// <param name="_qty"></param>
    //    /// <param name="_unit"></param>
    //    public static void CheckStock(Session _session, 异动方向 _stockChange, 商品 _product, decimal _qty, 单位 _unit)
    //    {
    //        实际库存 inv = _session.FindObject<实际库存>(new BinaryOperator("商品", _product));
    //        库存异动 invchange = new 库存异动(_session);
    //        invchange.异动方向 = _stockChange;
    //        invchange.单位 = _unit;
    //        invchange.商品名称 = _product;

    //        if (_stockChange == 异动方向.出库)
    //        {
    //            _qty = 0 - _qty;
    //        }
    //        if (inv == null)
    //        {
    //            inv = new 实际库存(_session);
    //            inv.商品名称 = _product;
    //            inv.单位 = _unit;

    //            invchange.旧数量 = 0;
    //            inv.实际数量 = _qty;

    //        }
    //        else
    //        {
    //            invchange.旧数量 = inv.实际数量;
    //            inv.实际数量 += _qty;
    //        }
    //        invchange.新数量 = inv.实际数量;
    //        inv.Save();
    //        invchange.Save();
    //    }
    //}
    ///// <summary>
    ///// 用于记录库存变化的日志
    ///// </summary>
    ///// 
    //[NavigationItem("库存管理")]
    //public class 库存异动 : BaseObject
    //{
    //    public 库存异动(Session session)
    //        : base(session)
    //    {

    //    }
    //    private 异动方向 _异动方向;
    //    [Custom("Caption", "异动方向")]
    //    public 异动方向 异动方向
    //    {
    //        get { return _异动方向; }
    //        set { SetPropertyValue<异动方向>("异动方向", ref _异动方向, value); }
    //    }
    //    private 商品 _商品名称;
    //    [Custom("Caption", "商品名称")]
    //    public 商品 商品名称
    //    {
    //        get { return _商品名称; }
    //        set { SetPropertyValue<商品>("商品名称", ref _商品名称, value); }
    //    }
    //    private decimal _旧数量;
    //    [Custom("Caption", "旧数量")]
    //    public decimal 旧数量
    //    {
    //        get { return _旧数量; }
    //        set { SetPropertyValue<decimal>("旧数量", ref _旧数量, value); }
    //    }
    //    private decimal _新数量;
    //    [Custom("Caption", "新数量")]
    //    public decimal 新数量
    //    {
    //        get { return _新数量; }
    //        set { SetPropertyValue<decimal>("新数量", ref _新数量, value); }
    //    }
    //    private 单位 _单位;
    //    [Custom("Caption", "单位")]
    //    public 单位 单位
    //    {
    //        get { return _单位; }
    //        set { SetPropertyValue<单位>("单位", ref _单位, value); }
    //    }
    //    private DateTime _异动时间;
    //    [Custom("Caption", "异动时间")]
    //    public DateTime 异动时间
    //    {
    //        get { return _异动时间; }
    //        set { SetPropertyValue<DateTime>("异动时间", ref _异动时间, value); }
    //    }
    //    private User _操作员;
    //    [Custom("Caption", "操作员")]
    //    public User 操作员
    //    {
    //        get { return _操作员; }
    //        set { SetPropertyValue<User>("操作员", ref _操作员, value); }
    //    }

    //}
    //public enum 异动方向
    //{
    //    入库 = 0,
    //    出库 = 1
    //}
    #endregion
}
